
function registerLimitDecimals (app) {
  app.directive("limitDecimals", {
    // 当绑定元素插入到DOM中
    mounted (el, binding, node) {      
      // 监听input事件
      // console.dir(el);
      // console.dir(binding);
      // console.log(node);
      
      el.addEventListener('input', function(event) {
        // console.log(event);
        // 获取输入值
        // console.log(event);
        let value = event.target.value;
        let reg = new RegExp(`^\\\d*(\\\.?\\\d{0,${binding.value || 2}})`, 'g')
        let limitValue = ("" + value) // 第一步：转成字符串
          .replace(/[^\d^\.]+/g, "") // 第二步：把不是数字，不是小数点的过滤掉
          .replace(/^0+(\d)/, "$1") // 第三步：第一位0开头，0后面为数字，则过滤掉，取后面的数字
          .replace(/^\./, "0.") // 第四步：如果输入的第一位为小数点，则替换成 0. 实现自动补全
          .match(reg)[0] || ""; // 第五步：最终匹配得到结果 以数字开头，只有一个小数点，而且小	数点后面只能有0到2位小数
        // 更新输入框的值
        // console.log(limitValue);
        // console.log(node);
        event.target.value = limitValue;
        node.ctx.proxy.$emit('update:modelValue', limitValue);
      });
    },
  })
}

function registerPositiveInt (app) {
  app.directive("posInt", {
    // 当绑定元素插入到DOM中
    mounted (el, binding, node) {      
      // 监听input事件

      el.addEventListener('input', function(event) {
        // console.log(event);
        // 获取输入值
        console.log(event);
        let value = event.target.value.replace(/\D+/g, '') // 去掉非数字字符;
        let resValue = /^[1-9][0-9]*$/.test(value) ? value : value.replace(/^0+/, ''); // 去掉前导0
        event.target.value = resValue;
        node.ctx.proxy.$emit('update:modelValue', resValue);
      });
    },
  })
}
 
export default function registerDirectives(app) {
  registerLimitDecimals(app);
  registerPositiveInt(app);
}